package dev.ece.suit.hexmap;

import dev.ece.core.light.Material;
import dev.ece.core.texture.Texture;

public interface TerrainModelCreator {

	float getCellOutSize();
	
	float getCellInSize();
	
	void render(MapCell cell);
	
	void render(MapCrevice crevice);
	
	void render(MapTriangle triangle);
	
	void render(MapWater water);
	
	Terrain[] getTerrains();
	
	MapCellCreator getMapCellCreator();
	
	MapCreviceCreator getMapCreviceCreator();
	
	MapTriangleCreator getMapTriangleCreator();
	
	Texture[] getTextures();
	
	Texture getNoise();
	
	Material getWaterMaterial();
	
	MapCell[][] createMapCells(int[][] terrains);
	
	MapCrevice[] createMapCrevices(MapCell[][] cells);
	
	MapTriangle[] createMapTriangles(MapCell[][] cells);
	
	MapWater[] createMapWaters(MapCell[][] cells);
	
	void destroy();
	
}
